﻿namespace TestTool.Tests.Definitions.Interfaces
{
    using System;
    using System.Collections.Generic;
    using System.Runtime.InteropServices;
    using TestTool.Tests.Definitions.Data;
    using TestTool.Tests.Definitions.Enums;

    public interface IProfileDefinition
    {
        ProfileStatus Check(out string reason, IEnumerable<Feature> features, IEnumerable<string> scopes);
        bool IsFunctionalityOptional(Functionality functionality);

        IEnumerable<FunctionalityItem> Functionalities { get; }

        IEnumerable<string> MandatoryScopes { get; }

        string Name { get; }

        string Scope { get; }

        ProfileVersionStatus Status { get; }
    }
}

